package prog060;

import geral.Funcao;
import geral.Integravel;
import geral.JanelaIntegral;

//Regra dos Trapézios
public class Prog060 implements Integravel {

	private double numeroIntervalos, min, max;
	private Funcao f;
	private JanelaIntegral janela;
	
	private double h;
	
	public Prog060() {
		janela = new JanelaIntegral(this);
	}

	@Override
	public void setFuncao(Funcao f) {
		this.f = f;
	}

	@Override
	public void setMin(double min) {
		this.min = min;
	}

	@Override
	public void setMax(double max) {
		this.max = max;
	}

	@Override
	public void setDivisoes(double n) {
		this.numeroIntervalos = n;
	}
	
	@Override
	public double calcula() {
		h = (max-min)/numeroIntervalos;
		
		double conta = f.executaFuncao(min);
		
		for(double i = min+h;i<max;i += h){
			conta += 2 * f.executaFuncao(i);
		}
		conta += f.executaFuncao(max);
		return (conta*h)/2;
	}
	
	public static void main(String[] args) {
		new Prog060();
	}

		
}

